package com.tancire.member.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tancire.common.annotation.Excel;
import com.tancire.common.core.domain.BaseEntity;

/**
 * 会员管理对象 member
 *
 * @author tancire
 * @date 2024-05-20
 */
public class Member extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long memberId;

    /**
     * 账号
     */
    @Excel(name = "账号")
    private String account;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String avatar;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    private String nickName;

    /**
     * 真实姓名
     */
    @Excel(name = "真实姓名")
    private String realName;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 阴历生日
     */
    @Excel(name = "阴历生日")
    private String lunarBirthday;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String sex;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    private String identityNum;

    /**
     * 个人简介
     */
    @Excel(name = "个人简介")
    private String personIntroduction;

    /**
     * 是否vip会员
     */
    private Integer memberVip;

    /**
     * 会员等级
     */
    @Excel(name = "会员等级")
    private Integer memberLevel;

    /**
     * 会员到期时间
     */
    private Date vipExpiresTime;

    /**
     * 微信openId
     */
    @Excel(name = "微信openId")
    private String openId;

    /**
     * 微信sessionKey
     */
    @Excel(name = "微信sessionKey")
    private String sessionKey;

    /**
     * 分享人ID
     */
    private Long shareId;

    /**
     * 0 正常  1 删除  真删除，字段保留
     */
    private Integer delFlag;

    /**
     * 会员卡包信息
     */
    private MemberPurse memberPurse;

    public MemberPurse getMemberPurse() {
        return memberPurse;
    }

    public void setMemberPurse(MemberPurse memberPurse) {
        this.memberPurse = memberPurse;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getAccount() {
        return account;
    }

    public Integer getMemberVip() {
        return memberVip;
    }

    public void setMemberVip(Integer memberVip) {
        this.memberVip = memberVip;
    }

    public Date getVipExpiresTime() {
        return vipExpiresTime;
    }

    public void setVipExpiresTime(Date vipExpiresTime) {
        this.vipExpiresTime = vipExpiresTime;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getRealName() {
        return realName;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setLunarBirthday(String lunarBirthday) {
        this.lunarBirthday = lunarBirthday;
    }

    public String getLunarBirthday() {
        return lunarBirthday;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }

    public void setIdentityNum(String identityNum) {
        this.identityNum = identityNum;
    }

    public String getIdentityNum() {
        return identityNum;
    }

    public void setPersonIntroduction(String personIntroduction) {
        this.personIntroduction = personIntroduction;
    }

    public String getPersonIntroduction() {
        return personIntroduction;
    }

    public void setMemberLevel(Integer memberLevel) {
        this.memberLevel = memberLevel;
    }

    public Integer getMemberLevel() {
        return memberLevel;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getOpenId() {
        return openId;
    }

    public void setSessionKey(String sessionKey) {
        this.sessionKey = sessionKey;
    }

    public String getSessionKey() {
        return sessionKey;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public Long getShareId() {
        return shareId;
    }

    public void setShareId(Long shareId) {
        this.shareId = shareId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("memberId", getMemberId())
                .append("account", getAccount())
                .append("password", getPassword())
                .append("phoneNumber", getPhoneNumber())
                .append("avatar", getAvatar())
                .append("nickName", getNickName())
                .append("realName", getRealName())
                .append("birthday", getBirthday())
                .append("lunarBirthday", getLunarBirthday())
                .append("sex", getSex())
                .append("identityNum", getIdentityNum())
                .append("personIntroduction", getPersonIntroduction())
                .append("memberLevel", getMemberLevel())
                .append("openId", getOpenId())
                .append("sessionKey", getSessionKey())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
